第8章 DNSの動作確認
DNSのサービス状況を確認するために下記のことを確認する必要がある
サービスに関するそれぞれの構成要素が正しく動いていること
それぞれの構成要素が適切に連携して全体として正しく動いていること
必要なこと
関係するサーバー(権威サーバーやフルリゾルバー)の状態の監視
突発的なアクセスの増加やサイバー攻撃の検知(アクセス数やトラフィックの確認)
コマンドで確認する
代表的なコマンド
https://gyazo.com/d5302b92d877d2f33a3796ba4dc6f31d
よく聞くnslookupとdigは大体同じだった。。。
nslookupが古くて、digに置き換えられたのでこちらが比較的新しい
Windowsには標準でnslookupが添付されているが情報が限られている
digはBINDを含むOSで標準添付されており、BINDを含まないOSではdrillが添付されているらしい
digの出力
code:dig
PMAC747S:mochiko$ dig @8.8.8.8 www.google.com IN A
; <<>> DiG 9.10.6 <<>> @8.8.8.8 www.google.com IN A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64153
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 267 IN A 216.58.196.228
;; Query time: 21 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Apr 13 23:05:14 JST 2020
;; MSG SIZE rcvd: 59
PMAC747S:mochiko$
DNS の動作確認で気をつけること
問い合わせ先がフルリゾルバーか権威サーバーかで、名前解決要求を有効にするか無効にするかを使い分ける必要がある
フルリゾルバーに対しては名前解決要求を有効化
権威サーバーに対しては名前解決要求を無効化
digのオプション
+recurse | +rec 名前解決の有効化
+norecurse | +norec 名前解決の無効化
+edns EDNS0の有効化(デフォルト)
+noedns EDNS0の無効化
+tcp TCPで問い合わせ
+trace ルートから委任情報をトレース
-x 指定されたIPアドレスを逆引き用ドメイン名に変換
+multiline | +multi 複数行形式で出力
DNSメッセージのフォーマット
https://gyazo.com/88fe5a27b6bf9a0bcec9edc823b8450b
Answerより下のセクションはデータがない場合はセクションそのものがなくなる
statusは名前解決の状態を示す
flagsは応答にそれぞれのフラグビットがセットされていることを示す
rd=Recursion Desired で名前解決要求であることを示す
ra=Recursion Available で応答した相手が名前解決を処理できる=フルリゾルバーであることを示す
権威サーバーの応答であればAAビットがセットされる
dig コマンドの応用 名前解決をしてみる
www.jprs.co.jpのAリソースレコードを問い合わせる
www.ietf.orgのAAAAリソースレコードを問い合わせる
このケースでは途中で外部のNSサーバーが委任先になるので、そのNSサーバーの名前解決を先にしにいく必要がある
https://gyazo.com/7daa3e7dec1703805444ef0a2f838b3e
ドメインのチェック
赤とか青などでドメインの状態を項目ごとに教えてくれる
https://gyazo.com/6014a7089b726521d0547e0ff65af0a1
https://gyazo.com/ac03c744be5fa3335c92f6cd311b7431
DNSSECの信頼の連鎖を表す図を表示する
署名が有効か、DNSSECの信頼の連鎖が正しく構築されているか
https://gyazo.com/506394d066fe48ab46507759d6d32745
dnscheck.jp などもある
DNS設定チェックサイトを使うとDNSの設定が正しく行われたかを外部から確認することができる
サーバーの監視
きちんと動作しているか=死活監視
DNSでは問い合わせに対して適切な応答が得られているかを確認することで死活監視を実施できる
権威サーバーの死活監視
その権威サーバーが管理する(つまり存在する)ドメイン名を定期的に問い合わせ、設定した情報が返ってくるかを確認する
フルリゾルバーの死活監視
自組織のドメイン名や有名なドメイン名を定期的に問い合わせて名前解決できることを確認する
Nagios(オープンソースのソフトウェア監視ツール)
Nagiosには権威サーバーやフルリゾルバーをチェックするためのモジュールがあり、応答が得られなくなった場合に警告を発する
トラフィック監視=サイバー攻撃を受けていないか
通常権威サーバーやフルリゾルバーは送受信したパケット数がほぼ同じになる
パケット数が大きく異なる場合、何らかのサイバー攻撃が疑われる
例:フルリゾルバーへのキャッシュポイズニング攻撃
DSC(DNS Static Controller)によるトラフィックの解析と可視化
muninもサーバー監視ツール
VPSにもインストールできるっぽいのでやってみたい